1. Field of the Invention
This invention relates generally to data processing systems and, more particularly, to the control of the instruction and data elements that are processed by the data processing system.
2. Description of the Related Art
In data processing systems, the data elements that are manipulated by the data processing system, as well as instruction elements forming a program controlling the manipulations, are typically stored in a main memory unit. The main memory unit can store instruction and data elements associated with a multiplicity of programs being executed by the data processing system. For a variety of reasons, such as integrity of the instruction and data elements, it is frequently desirable to control the type of manipulation to which the instruction and data elements can be subjected. For example, inconsistent results can occur when a user of the data processing system can cause the fundamental portions of the operating system program or selected subroutines to be altered.
In the past, a variety of techniques have been used to control the type of manipulation to which a logic signal group can be subjected. A field (or fields) can be associated with each logic signal group that designates the intended use of the associated instruction or data element. Because of the variety of access rights that can be assigned to the instruction or data element, only a subset of all possible access rights to the associated instruction or data elements can be assigned without the requisite access rights fields becoming excessively large. This problem is addressed in a somewhat different manner by the Multics (Multiplexed Information and Computing Service) system in which a multiplicity of privilege levels are defined for the operation of the data processing system and transfer between these levels is rigidly controlled. The Multics system is described in "The Multics System; An Examination of its Structure" by Elliott I. Orgnick, published by MIT Press. The Multics system and similar data processing systems require elaborate hardware/software privilege level interfaces that typically involve a large amount of processing time to implement. Access rights associated with Multics system are defined for each level of privilege and must be examined for consistency when passing between privilege levels.
A need has therefore been felt for a technique for controlling the manipulation of instruction and data elements that has sufficient flexibility to provide for the available processing options without requiring a large amount of dedicated processing capability or, without requiring relatively large access rights fields to be associated with each instruction or data element.